#!/bin/bash

sudo ./system_backup.sh

#version=`lsb_release -r | awk -F ' '  '{printf $NF}'`

source ./system_config.sh

if [ -f /etc/X11/xorg.conf.d/40-libinput.conf ]; then
sudo rm -rf /etc/X11/xorg.conf.d/40-libinput.conf
fi
if [ ! -d /etc/X11/xorg.conf.d ]; then
sudo mkdir -p /etc/X11/xorg.conf.d
fi
if [ "$version" = "20.10" ] || [[ "$version" > "20.10" ]]; then
sudo cp ./usr/tft35a-overlay-20.10.dtb /boot/firmware/overlays/tft35a-overlay.dtb
sudo cp ./usr/tft35a-overlay-20.10.dtb /boot/firmware/overlays/tft35a.dtbo
else
sudo cp ./usr/tft35a-overlay.dtb /boot/firmware/overlays/
sudo cp ./usr/tft35a-overlay.dtb /boot/firmware/overlays/tft35a.dtbo
fi

if [[ "$version" < "20.04" ]]; then
#sudo cp -rf ./boot/config-nomal.txt ./boot/config.txt.bak
sudo cp -rf ./usr/99-fbturbo.conf  /usr/share/X11/xorg.conf.d/99-fbturbo.conf
else
if [[ "$version" = "20.04" ]]; then
#sudo cp -rf ./boot/config-nomal-20.04.txt ./boot/config.txt.bak
sudo cp -rf ./usr/99-fbturbo-20.04.conf  /usr/share/X11/xorg.conf.d/99-fbturbo.conf
else
sudo cp -rf ./usr/99-fbturbo.conf  /usr/share/X11/xorg.conf.d/99-fbturbo.conf
fi
row=`grep -nr "dtoverlay=vc4-fkms-v3d" ./boot/config.txt.bak | awk -F ':' '{if(NR==1)printf $1}'`
sudo sed -i -e ''"$row"'s/dtoverlay=vc4-fkms-v3d/#dtoverlay=vc4-fkms-v3d/' ./boot/config.txt.bak
fi
sudo echo "hdmi_force_hotplug=1" >> ./boot/config.txt.bak
sudo echo "dtparam=i2c_arm=on" >> ./boot/config.txt.bak
sudo echo "dtparam=spi=on" >> ./boot/config.txt.bak
sudo echo "enable_uart=1" >> ./boot/config.txt.bak
sudo echo "dtoverlay=tft35a:rotate=90" >> ./boot/config.txt.bak
sudo cp -rf ./boot/config.txt.bak /boot/firmware/config.txt

if [ "$version" = "20.10" ] || [[ "$version" > "20.10" ]]; then
sudo cp -rf ./usr/99-calibration.conf-35-270  /etc/X11/xorg.conf.d/99-calibration.conf
else
sudo cp -rf ./usr/99-calibration.conf-35-90  /etc/X11/xorg.conf.d/99-calibration.conf
fi
#sudo cp -rf ./usr/99-fbturbo.conf  /usr/share/X11/xorg.conf.d/99-fbturbo.conf
#if [ -b /dev/mmcblk0p7 ]; then
#sudo cp ./usr/cmdline.txt-noobs /boot/firmware/cmdline.txt
#else
#sudo cp ./usr/cmdline.txt /boot/firmware/
#fi
#sudo cp ./usr/inittab /etc/
#sudo cp ./boot/config-35.txt /boot/firmware/config.txt
sudo touch ./.have_installed
echo "gpio:resistance:35:90:480:320" > ./.have_installed
#evdev install
#nodeplatform=`uname -n`
#kernel=`uname -r`
#version=`lsb_release -r | awk -F ' '  '{printf $NF}'`
#if test "$nodeplatform" = "raspberrypi";then
#echo "this is raspberrypi kernel"
#version=${version%% *}
#version=${version#*#}
#echo $version
if [ "$version" = "18.04" ] || [[ "$version" > "18.04" ]]; then
#echo "reboot"
#else
echo "need to update touch configuration"
wget --spider -q -o /dev/null --tries=1 -T 10 https://www.x.org
if [ $? -eq 0 ]; then
sudo apt-get install xserver-xorg-input-evdev  2> error_output.txt
else
if [ $hardware_arch -eq 32 ]; then
sudo dpkg -i -B ./xserver-xorg-input-evdev_2.10.5-1_armhf.deb 2> error_output.txt
elif [ $hardware_arch -eq 64 ]; then
sudo dpkg -i -B ./xserver-xorg-input-evdev_1%3a2.10.6-1_arm64.deb 2> error_output.txt
fi
fi
#sudo apt-get install xserver-xorg-input-evdev  2> error_output.txt
result=`cat ./error_output.txt`
echo -e "\033[31m$result\033[0m"
grep -q "error:" ./error_output.txt && exit
sudo cp -rf /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf
#echo "reboot"
#fi
else
echo "This version is lower than ubuntu 18.04, no need to update touch configure, reboot"
fi

sudo sync
sudo sync
sleep 1
if [ $# -eq 1 ]; then
sudo ./rotate.sh $1
elif [ $# -gt 1 ]; then
echo "Too many parameters"
fi

echo "reboot now"
sudo reboot
